#!/bin/bash

#root=$(readlink -f -- "$(dirname -- "$0")/..")
root=`perl -MCwd -e'print Cwd::abs_path(shift)' $(dirname -- "$0")/..`

. util/ver

name=ngx_openresty-$version
work=$root/work

if [ -z $debug ]; then
    rm -rf $name || exit 1
    mkdir -p $name/bundle || exit 1
fi

cd $name/bundle || exit 1

if [ ! -d $work ]; then
    mkdir $work || exit 1
fi

ver="$main_ver"
$root/util/get-tarball "http://nginx.org/download/nginx-$ver.tar.gz" -O nginx-$ver.tar.gz || exit 1
tar -xzf nginx-$ver.tar.gz || exit 1
cd nginx-$ver || exit 1

# patch the patch

cp $root/patches/nginx-$main_ver-server_header.patch server_header.patch || exit 1
sed -i $"s/NGINX_VERSION \".unknown\"/NGINX_VERSION \".$minor_ver\"/" \
    server_header.patch || exit 1

patch -p2 < server_header.patch || exit 1

#patch -p1 < $root/patches/nginx-$main_ver-redirect_memcpy_overlap.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-no_error_pages.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-no_Werror.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-epoll_check_stale_wev.patch || exit 1

#patch -p1 < $root/patches/nginx-$main_ver-request_body_in_single_buf.patch || exit 1

patch -p1 -l < $root/patches/nginx-$main_ver-subrequest_loop.patch || exit 1

patch -p1 -l < $root/patches/nginx-$main_ver-gzip_empty_flush_buf.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-variable_header_ignore_no_hash.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-named_location_clear_mods_ctx.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-allow_request_body_updating.patch || exit 1

patch -p1 < $root/patches/nginx-$main_ver-log_escape_non_ascii.patch || exit 1

#patch -p1 < $root/patches/nginx-$main_ver-gzip_ok_invalid_read_fix.patch || exit 1

rm -f *.patch || exit 1

cd .. || exit 1

cp $root/patches/nginx-$main_ver-no_pool.patch ./nginx-no_pool.patch || exit 1
sed -i $"s/NGINX_VERSION \".unknown/NGINX_VERSION \".$minor_ver/" \
    ./nginx-no_pool.patch || exit 1
rm -rf no-pool-nginx-$ver

ver=0.37rc8
$root/util/get-tarball "http://github.com/agentzh/echo-nginx-module/tarball/v$ver" -O echo-nginx-module-$ver.tar.gz || exit 1
tar -xzf echo-nginx-module-$ver.tar.gz || exit 1
mv agentzh-echo-nginx-module-* echo-nginx-module-$ver || exit 1

ver=0.03rc8
$root/util/get-tarball "http://github.com/agentzh/xss-nginx-module/tarball/v$ver" -O xss-nginx-module-$ver.tar.gz || exit 1
tar -xzf xss-nginx-module-$ver.tar.gz || exit 1
mv agentzh-xss-nginx-module-* xss-nginx-module-$ver || exit 1

ver=0.2.17
$root/util/get-tarball "http://github.com/simpl/ngx_devel_kit/tarball/v$ver" -O ngx_devel_kit-$ver.tar.gz
tar -xzf ngx_devel_kit-$ver.tar.gz || exit 1
mv simpl-ngx_devel_kit-* ngx_devel_kit-$ver || exit 1

ver=0.22rc4
$root/util/get-tarball "http://github.com/agentzh/set-misc-nginx-module/tarball/v$ver" -O set-misc-nginx-module-$ver.tar.gz || exit 1
tar -xzf set-misc-nginx-module-$ver.tar.gz || exit 1
mv agentzh-set-misc-nginx-module-* set-misc-nginx-module-$ver || exit 1

ver=0.12rc7
$root/util/get-tarball "http://github.com/agentzh/rds-json-nginx-module/tarball/v$ver" -O rds-json-nginx-module-$ver.tar.gz || exit 1
tar -xzf rds-json-nginx-module-$ver.tar.gz || exit 1
mv agentzh-rds-json-nginx-module-* rds-json-nginx-module-$ver || exit 1

ver=0.04
$root/util/get-tarball "http://github.com/agentzh/rds-csv-nginx-module/tarball/v$ver" -O rds-csv-nginx-module-$ver.tar.gz || exit 1
tar -xzf rds-csv-nginx-module-$ver.tar.gz || exit 1
mv agentzh-rds-csv-nginx-module-* rds-csv-nginx-module-$ver || exit 1

ver=0.16rc7
$root/util/get-tarball "http://github.com/agentzh/headers-more-nginx-module/tarball/v$ver" -O headers-more-nginx-module-$ver.tar.gz || exit 1
tar -xzf headers-more-nginx-module-$ver.tar.gz || exit 1
mv agentzh-headers-more-nginx-module-* headers-more-nginx-module-$ver || exit 1

#################################

ver=0.1.2rc4
$root/util/get-tarball "http://github.com/chaoslawful/drizzle-nginx-module/tarball/v$ver" -O drizzle-nginx-module-$ver.tar.gz || exit 1
tar -xzf drizzle-nginx-module-$ver.tar.gz || exit 1
mv chaoslawful-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1

#################################

ver=0.3.1rc45
$root/util/get-tarball "http://github.com/chaoslawful/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
mv chaoslawful-lua-nginx-module-* ngx_lua-$ver || exit 1

#################################

ver=0.03rc1
$root/util/get-tarball "http://github.com/agentzh/array-var-nginx-module/tarball/v$ver" -O array-var-nginx-module-$ver.tar.gz || exit 1
tar -xzf array-var-nginx-module-$ver.tar.gz || exit 1
mv agentzh-array-var-nginx-module-* array-var-nginx-module-$ver || exit 1

#################################

ver=0.13rc2-ywb4
$root/util/get-tarball "https://github.com/yaoweibin/memc-nginx-module/tarball/v$ver" -O memc-nginx-module-$ver.tar.gz || exit 1
tar -xzf memc-nginx-module-$ver.tar.gz || exit 1
mv yaoweibin-memc-nginx-module-* memc-nginx-module-$ver || exit 1

#################################

ver=0.22
$root/util/get-tarball "https://github.com/yaoweibin/nginx_syslog_patch/tarball/v$ver" -O nginx-syslog-patch-$ver.tar.gz || exit 1
tar -xzf nginx-syslog-patch-$ver.tar.gz || exit 1
mv yaoweibin-nginx_syslog_patch-* nginx-syslog-patch-$ver || exit 1
cd nginx-$main_ver || exit 1
patch -p1 < ../nginx-syslog-patch-$ver/syslog_1.0.6.patch || exit 1
cd .. || exit 1

#################################

ver=0.13rc3
$root/util/get-tarball "http://github.com/agentzh/srcache-nginx-module/tarball/v$ver" -O srcache-nginx-module-$ver.tar.gz || exit 1
tar -xzf srcache-nginx-module-$ver.tar.gz || exit 1
mv agentzh-srcache-nginx-module-* srcache-nginx-module-$ver || exit 1

#################################

ver=0.07rc5
$root/util/get-tarball "http://github.com/calio/form-input-nginx-module/tarball/v$ver" -O form-input-nginx-module-$ver.tar.gz || exit 1
tar -xzf form-input-nginx-module-$ver.tar.gz || exit 1
mv calio-form-input-nginx-module-* form-input-nginx-module-$ver || exit 1

#################################

ver=0.10rc5
$root/util/get-tarball "http://github.com/calio/iconv-nginx-module/tarball/v$ver" -O iconv-nginx-module-$ver.tar.gz || exit 1
tar -xzf iconv-nginx-module-$ver.tar.gz || exit 1
mv calio-iconv-nginx-module-* iconv-nginx-module-$ver || exit 1

#################################

ver=0.01
$root/util/get-tarball "http://github.com/agentzh/encrypted-session-nginx-module/tarball/v$ver" -O encrypted-session-nginx-module-$ver.tar.gz || exit 1
tar -xzf encrypted-session-nginx-module-$ver.tar.gz || exit 1
mv agentzh-encrypted-session-nginx-module-* encrypted-session-nginx-module-$ver || exit 1

#################################


ver=0.7
$root/util/get-tarball "http://mdounin.ru/files/ngx_http_upstream_keepalive-$ver.tar.gz" -O upstream_keepalive-$ver.tar.gz || exit 1
tar -xzf upstream_keepalive-$ver.tar.gz || exit 1
mv ngx_http_upstream_keepalive-* upstream-keepalive-nginx-module-$ver || exit 1

#################################

ver=0.2
$root/util/get-tarball "http://mdounin.ru/files/ngx_http_auth_request_module-$ver.tar.gz" -O auth_request-$ver.tar.gz || exit 1
tar -xzf auth_request-$ver.tar.gz || exit 1
mv ngx_http_auth_request_module-* auth-request-nginx-module-$ver || exit 1

#################################

ver=0.9rc2
$root/util/get-tarball "https://github.com/FRiCKLE/ngx_postgres/tarball/$ver" -O ngx_postgres-$ver.tar.gz || exit 1
tar -xzf ngx_postgres-$ver.tar.gz || exit 1
mv FRiCKLE-ngx_postgres-* ngx_postgres-$ver || exit 1

#################################

ver=0.08rc2
$root/util/get-tarball "http://github.com/agentzh/redis2-nginx-module/tarball/v$ver" -O redis2-nginx-module-$ver.tar.gz || exit 1
tar -xzf redis2-nginx-module-$ver.tar.gz || exit 1
mv agentzh-redis2-nginx-module-* redis2-nginx-module-$ver || exit 1

#################################

ver=5.1.4
$root/util/get-tarball "http://www.lua.org/ftp/lua-$ver.tar.gz" -O "lua-$ver.tar.gz" || exit 1
tar -xzf lua-$ver.tar.gz || exit 1

$root/util/get-tarball "http://www.lua.org/ftp/patch-lua-$ver-4" -O "patch-lua-$ver-4" || exit 1

cd lua-$ver/src || exit 1
patch -p0 < ../../patch-lua-$ver-4 || exit 1
cd ../.. || exit 1

rm "patch-lua-$ver-4" || exit 1

cp $root/patches/lua-$ver-makefile_install_fix.patch lua-makefile-fix.patch || exit 1

patch -p0 < lua-makefile-fix.patch || exit 1

rm lua-makefile-fix.patch || exit 1

#################################

ver=2.0.0-beta9
$root/util/get-tarball "http://luajit.org/download/LuaJIT-$ver.tar.gz" -O "LuaJIT-$ver.tar.gz" || exit 1
tar -xzf LuaJIT-$ver.tar.gz || exit 1

cd LuaJIT-$ver || exit 1;
#$root/util/get-tarball http://luajit.org/download/beta8_hotfix1.patch -O beta8_hotfix1.patch
#patch -p1 < beta8_hotfix1.patch || exit 1
#rm beta8_hotfix1.patch || exit 1
cp $root/misc/unwind-generic.h ./unwind.h || exit 1
cd ..

#################################

ver=1.0.3
$root/util/get-tarball "http://www.kyne.com.au/~mark/software/old/lua-cjson-$ver.tar.gz" -O "lua-cjson-$ver.tar.gz" || exit 1
tar -xzf lua-cjson-$ver.tar.gz || exit 1
cd lua-cjson-$ver || exit 1
#patch -p1 < $root/patches/lua_cjson-$ver-array_detection_fix.patch || exit 1
cd ..

#################################

ver=0.09rc5
$root/util/get-tarball "http://github.com/agentzh/lua-redis-parser/tarball/v$ver" -O "lua-redis-parser-$ver.tar.gz" || exit 1
tar -xzf lua-redis-parser-$ver.tar.gz || exit 1
mv agentzh-lua-redis-parser-* lua-redis-parser-$ver || exit 1

#################################

ver=0.04
$root/util/get-tarball "http://github.com/agentzh/lua-rds-parser/tarball/v$ver" -O "lua-rds-parser-$ver.tar.gz" || exit 1
tar -xzf lua-rds-parser-$ver.tar.gz || exit 1
mv agentzh-lua-rds-parser-* lua-rds-parser-$ver || exit 1

#################################

rm *.tar.gz

cd ..
cp $root/util/configure ./
cp $root/README ./
cp $root/util/install bundle/

cd $root

tar czf $name.tar.gz $name

